package com.bootdo.contract.config;


import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@WebFilter(filterName="httpServletRequestReplacedFilter",urlPatterns={"/app/*"})// 多个用逗号分隔
public class HttpServletRequestReplacedFilter implements Filter {
	private static final Logger log = LoggerFactory.getLogger(HttpServletRequestReplacedFilter.class);
	
	@Override
	public void destroy() {
		log.info("filter destory");
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		ServletRequest requestWrapper = null;
		if(request instanceof HttpServletRequest) {
			requestWrapper = new MyHttpServletRequestWrapper((HttpServletRequest) request);
		}
		if(requestWrapper == null) {
			chain.doFilter(request, response);
		} else {
			chain.doFilter(requestWrapper, response);
		}
	}
	@Override
	public void init(FilterConfig arg0) throws ServletException {
		log.info("init filter");
	}

}
